/**
 * 导入内部网格组件和网格项组件，并导出相关类型定义。
 * 创建一个扩展接口 `GridInterface`，以便为 `Grid` 组件添加静态属性 `Item`。
 * 最后将 `InternalGrid` 转换为 `GridInterface` 类型，并为其添加静态属性 `Item`。
 */

import InternalGrid from '@/bases/grid/grid';
import GridItem from '@/bases/grid/grid-item';

// 导出网格组件和网格项组件的类型定义
export type { GridProps } from '@/bases/grid/grid';
export type { GridItemProps } from '@/bases/grid/grid-item';

// 定义 InternalGrid 的类型
type InternalGridType = typeof InternalGrid;

/**
 * 扩展 InternalGridType 接口，为 Grid 组件添加静态属性 Item，
 * 该属性指向 GridItem 组件，以便在使用 Grid 组件时可以通过 Grid.Item 访问 GridItem 组件。
 */
export interface GridInterface extends InternalGridType {
  Item: typeof GridItem;
}

// 将 InternalGrid 转换为 GridInterface 类型，并为其添加静态属性 Item
const Grid = InternalGrid as GridInterface;
Grid.Item = GridItem;

// 导出默认的 Grid 组件
export default Grid;
